package com.tbit.uqbike.client.service;

import com.tbit.uqbike.client.pojo.EventDetail;
import com.tbit.uqbike.client.pojo.InvitationJoin;
import com.tbit.uqbike.client.pojo.InviteNewEvent;
import com.tbit.uqbike.client.pojo.User;

import java.util.Date;
import java.util.List;

/**
 * @Author: chen
 * @Description: 活动
 * @Date: 创建于 11:39 2020/12/31
 */
public interface InviteNewEventService {

    /**
     * 通过区域id获取
     *
     * @param accountId
     * @return
     */
    InviteNewEvent getByAccountId(Integer accountId, Integer type);

    /**
     * 根据区域id和类型获取活动
     *
     * @param accountId
     * @param type
     * @return
     */
    InviteNewEvent getNewEvent(Integer accountId, Integer type, User user);

    /**
     * 根据区域id和类型获取活动
     *
     * @param code
     * @param type
     * @return
     */
    InviteNewEvent getByCode(String code, Integer type, User user);

    /**
     * 邀请
     *
     * @param code
     */
    void invite(String code, User user);

    /**
     * 获取用户邀请记录
     *
     * @param code
     * @return
     */
    List<InvitationJoin> getUserEventLog(String code, Integer userId);

    /**
     * 通过主键id获取
     *
     * @param eventId
     * @return
     */
    InviteNewEvent getByEventId(Integer eventId);

    /**
     * 赠送优惠券
     *
     * @param e
     * @param user
     * @param accountId
     * @param date
     * @param name
     */
    void couponGive(EventDetail e, User user, Integer accountId, Date date, String name);

    /**
     * 生成小程序二维码
     *
     * @param user
     * @return
     */
    String createQrcode(User user, String code);
}
